/* Copyright 203-2115 AtomWare Technology Pty Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * The flowing information must be keep 
 * OptionsInterceptor.java
 * jackysoft-basic-core
 * 2013-3-12下午4:06:01
 * @author 屈甲康
 * QQ285799123
 * mailto:qujiakang@gmail.com
 */

package org.jackysoft.interceptor;

import java.lang.reflect.Method;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jackysoft.annotations.ActionRequestMethod;
import org.jackysoft.annotations.MethodInceptor;
import org.jackysoft.query.RunnerQuery;
import org.springframework.web.servlet.ModelAndView;

@MethodInceptor(method = ActionRequestMethod.options)
public class OptionsInterceptor extends AbstractInterceptor {

	@Override
	public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {

		RunnerQuery q = (RunnerQuery) modelAndView.getModelMap().get("query");
		// 获得这个action中所对应的class类型参数
		Method getsPage_Method = service.getClass().getMethod("getOptions",
				RunnerQuery.class);
		// 调用service的插入bean方法

		Object options = getsPage_Method.invoke(service, q);

		modelAndView.addObject("options", options);

	}

}
